import 'reflect-metadata';

let obj = {
  username: '罗斯福',
  age: 23,
  info() {
    console.log('信息');
  },
};

// 1. 在对象上定义原数据
Reflect.defineMetadata('metaobjkey', '我是一个对象的原数据', obj);
console.log(Reflect.getMetadata('metaobjkey', obj));

// 2. 在属性上定义绑定原数据
Reflect.defineMetadata('usernamemetakey', '用户名合法', obj, 'username');
// Reflect.getMetadata('usernamemetakey', obj, 'username');
console.log(Reflect.getMetadata('usernamemetakey', obj, 'username'));

// 判断是否存在
if (Reflect.hasMetadata('describe', obj)) {
  console.log('obj存在describe原数据');
} else {
  console.log('obj不存在describey原数据');
}

if (Reflect.hasMetadata('metaobjkey', obj)) {
  console.log('obj存在metaobjkey原数据');
} else {
  console.log('obj不存在metaobjkey原数据');
}
